package aop.crosscutting;

import org.apache.log4j.Logger;
import org.aspectj.lang.JoinPoint;

//공통로직
public class LogWriter {
	private Logger logger = Logger.getLogger(LogWriter.class);
	
	public void log() {
		logger.info("처리를 시작합니다.");
	}
	
	public void beforeLog(JoinPoint jp){
		//JoinPoint - Target(핵심관심사항관련) 정보, 호출시 넘겨준 argument 값들.
		Object target = jp.getTarget();//Target 객체
		Object [] args = jp.getArgs();//핵심 메소드 호출시 받은 매개변수들. 매개변수가 없는 경우 null
		
		if(args!=null) {
			System.out.println("jp.getArgs() : 매개변수 개수 - " + args.length );
			for(Object arg : args){
				System.out.println(arg);
			}
		}
		System.out.println("jp.getTarget() : " + target.getClass().getName()); //class이름 return
	}
	
}
